import {defineStore} from 'pinia'

// 定义一个模块化的小仓库
// defineStore方法接收两个参数，第一个参数是模块名称，第二个参数是仓库的配置
// defineStore返回的是一个函数，当函数调用的时候，能够拿到的内部的内容

const useCountState = defineStore('count',{
    state:()=>{
        return{
            num:0,
        }
    },
    actions:{
        // actions中的方法是用来修改数据的，接收的参数是调用这个方法时传递的参数
        increment(){
            // actions方法内部使用this拿到state数据进行修改
            this.num++;
        },
        incrementN(n:number){
            this.num += n;
        }
    },
    getters:{
        // 在getters中需要限制返回值的类型
        doubleNum():number{
            return this.num * 2
        }
    }
})

export default useCountState